package cz.pecinovsky.česky.oopnz.utility;


/*******************************************************************************
 * Ttřída {@code MathRUP} je knihovní třídou definující metody,
 * které mi ve třídě {@link java.lang.Math} chybí.
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class MathRUP
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

    /***************************************************************************
     * Vrátí index největšího prvku mezi zadanými parametry.
     *
     * @param ii Pole se zadanými parametry
     * @return Index největšího prvku
     */
    public static int indexMaxima(int... ii)
    {
        int index = 0;
        int max   = ii[0];
        for (int i=1;   i < ii.length;   i++) {
            if (ii[i] > max) {
                index = i;
                max   = ii[i];
            }
        }
        return index;
    }


    /***************************************************************************
     * Vrátí pole, hodnoty jehož prvků jsou druhými mocninami hodnot prvků
     * v poli obdrženém juako parametr.
     *
     * @param dd Obdržené pole
     * @return Pole druhých mocnin
     */
    public static double[] kvadrát(double[] dd)
    {
        double[] výsledek = new double[dd.length];
        for (int i=0;   i < dd.length;   i++) {
            výsledek[i] = dd[i] * dd[i];
        }
        return výsledek;
    }



//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /** Soukromy konstruktor bránící vytvoření instance. */
    private MathRUP() {}



//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        MathRUP inst = new MathRUP();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
